unit UFrmfechamento;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, DBCtrls, StdCtrls, Mask, ToolEdit, CurrEdit, Buttons;

type
  TFrmfechamento = class(TForm)
    Panel1: TPanel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Bevel6: TBevel;
    Bevel7: TBevel;
    DBText1: TDBText;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label3: TLabel;
    Bevel8: TBevel;
    Bevel9: TBevel;
    Bevel10: TBevel;
    Label6: TLabel;
    Bevel11: TBevel;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    Bevel13: TBevel;
    DBText5: TDBText;
    Label7: TLabel;
    Label8: TLabel;
    CurrencyEdit1: TCurrencyEdit;
    Label9: TLabel;
    Panel2: TPanel;
    Label10: TLabel;
    Bevel12: TBevel;
    Label11: TLabel;
    Bevel14: TBevel;
    Label12: TLabel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    Label13: TLabel;
    SpeedButton1: TSpeedButton;
    procedure FormShow(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frmfechamento: TFrmfechamento;

implementation
uses modulo, uqrecibo;
{$R *.DFM}

procedure TFrmfechamento.FormShow(Sender: TObject);
var
   a, b, c, d : Currency;
   x : TDateTime;
begin
   DMEscola.Qsumreforcos.close;
   DMEscola.Qsumreforcos.SQL.Clear;
   DMEscola.Qsumreforcos.SQL.Add('Select sum(valor) From reforcos');
   DMEscola.Qsumreforcos.SQL.Add('Where data = :dia');
   DMEscola.Qsumreforcos.ParamByName('dia').AsDate := Date;
   DMEscola.Qsumreforcos.open;
   a := DMEscola.QsumreforcosSUMOFvalor.AsCurrency;
//=============
   DMEscola.Qsumretiradas.close;
   DMEscola.Qsumretiradas.SQL.Clear;
   DMEscola.Qsumretiradas.SQL.Add('Select sum(valor) From retiradas');
   DMEscola.Qsumretiradas.SQL.Add('Where data = :dia2');
   DMEscola.Qsumretiradas.ParamByName('dia2').AsDate := Date;
   DMEscola.Qsumretiradas.open;
   b := DMEscola.QsumretiradasSUMOFvalor.AsCurrency;
//==============
   DMEscola.Qsomavenda.close;
   DMEscola.Qsomavenda.SQL.Clear;
   DMEscola.Qsomavenda.SQL.Add('Select  sum(tota_final) From venda_produtos');
   DMEscola.Qsomavenda.SQL.Add('Where data_venda = :dia3 and');
   DMEscola.Qsomavenda.SQL.Add('pago = true');
   DMEscola.Qsomavenda.ParamByName('dia3').AsDate := Date;
   DMEscola.Qsomavenda.open;

   DMEscola.Qsumvenda.close;
   DMEscola.Qsumvenda.SQL.Clear;
   DMEscola.Qsumvenda.SQL.Add('Select sum(preco_total) From detalhes_venda_produtos');
   DMEscola.Qsumvenda.SQL.Add('Where dataPGTO = :dia5 and');
   DMEscola.Qsumvenda.SQL.Add('pago = true');
   DMEscola.Qsumvenda.ParamByName('dia5').AsDate := Date;
   DMEscola.Qsumvenda.open;
   c := DMEscola.QsomavendaSUMOFtota_final.AsCurrency + DMEscola.QsumvendaSUMOFpreco_total.AsCurrency;
   label13.caption := CurrToStr(c);
//===============
   DMEscola.Qsumacesso.close;
   DMEscola.Qsumacesso.SQL.Clear;
   DMEscola.Qsumacesso.SQL.Add('Select Sum(Total_acesso) From venda_acesso');
   DMEscola.Qsumacesso.SQL.Add('Where data = :dia4 and');
   DMEscola.Qsumacesso.SQL.Add('pago = true');
   DMEscola.Qsumacesso.ParamByName('dia4').AsDate := Date;
   DMEscola.Qsumacesso.open;
   d := DMEscola.QsumacessoSUMOFTotal_acesso.AsCurrency;
//===============
   label9.caption :=  CurrToStr((a + c + d) - b);
   label10.caption := DaTeToStr(Date);
   x := (Date - 1);
//=================
   DMescola.Qfechamento.close;
   DMEscola.Qfechamento.SQL.Clear;
   DMEscola.Qfechamento.SQL.Add('Select * From fechamento');
   DMEscola.Qfechamento.SQL.Add('Where data = :ontem');
   DMEScola.Qfechamento.ParamByName('ontem').AsDate := x;
   DMEscola.Qfechamento.Open;
   label11.caption := DMEscola.QfechamentoSaldoAtual.AsString;
   if label11.caption = '' then label11.caption := '0';
//================
   CurrencyEdit1.Text := FloatToStr(StrToFloat(label9.caption) + StrToFloat(label11.caption));
end;

procedure TFrmfechamento.SpeedButton1Click(Sender: TObject);
begin
   close;
end;

procedure TFrmfechamento.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   Action := CaFree;
end;

procedure TFrmfechamento.SpeedButton2Click(Sender: TObject);
begin
   if MessageDlg('O Fechamento do caixa deve ser a última coisa a ser feita no dia e só deve ser feito apenas uma vez no dia.'+#13+'Tem certeza que deseja fechar o caixa hoje?', MtConfirmation, [mbyes, mbno], 0) = mryes then
   begin
      DMEscola.Qfechamento.Append;
      DMescola.Qfechamento.Edit;
      DMEscola.QfechamentoData.Value := Date;
      DMEscola.QfechamentoReforcos.Value := DBText2.Field.AsCurrency;
      DMEscola.QfechamentoRetiradas.Value := DBText5.Field.AsCurrency;
      DMEscola.QfechamentoAcessos.Value := DBText4.Field.AsCurrency;
      DMEscola.QfechamentoProdutos.Value := StrToCurr(Label13.caption);
      DMEscola.QfechamentoTotaldia.Value := StrToCurr(Label9.caption);
      DMescola.QfechamentoSaldoanterior.Value := StrToCurr(label11.caption);
      DMEscola.QfechamentoSaldoAtual.Value := StrToCurr(CurrencyEdit1.Text);
      DMEscola.Qfechamento.Post;
      ShowMessage('Informações Diárias do caixa gravadas com sucesso');
   end;
end;

procedure TFrmfechamento.SpeedButton4Click(Sender: TObject);
var
   tem : string;
begin
   DMEscola.Qfechamento.close;
   DMEscola.Qfechamento.SQL.Clear;
   DMEscola.Qfechamento.SQL.Add('Select * From fechamento');
   DMEscola.Qfechamento.SQL.Add('Where data = :hoje');
   DMEscola.Qfechamento.ParamByName('hoje').AsDateTime := Date;
   DMEscola.Qfechamento.open;
   tem := DMEscola.QfechamentoTotaldia.AsString;
   if tem <> '' then
   begin
      RelCaixa := TRelCaixa.Create(Application);
      RelCaixa.rel1.Preview
   end
   else
      ShowMessage('Não será possível imprimir o caixa de hoje se antes ele não for salvo!!!');
   
end;

procedure TFrmfechamento.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   if MessageDlg('Deseja realmente fechar o Caixa', MtConfirmation, [mbyes, mbno], 0) = mrno then
      CanClose := false;
end;

procedure TFrmfechamento.SpeedButton5Click(Sender: TObject);
begin
   DMEscola.Qfechamento.Prior;
   if (DMEscola.Qfechamento.Bof) then
      DMescola.Qfechamento.First;

end;

procedure TFrmfechamento.SpeedButton3Click(Sender: TObject);
begin
   DMEscola.Qfechamento.Next;
   if (DMEscola.Qfechamento.Eof) then
      DMEscola.Qfechamento.Last;
end;

end.
